# -*- coding: utf-8 -*-

"""
Scarecrow MCP Server

这是一个基于FastMCP框架的服务器应用，主要提供关于Scarecrow的信息和功能。
Scarecrow是一个AI助手角色，具有特定的主题和版本信息。

作者: AI助手
版本: 1.1
日期: 2023-06-01
"""

# 导入FastMCP框架
from fastmcp import FastMCP

# 初始化FastMCP实例，命名为"ScarecrowMcp"
mcp = FastMCP("ScarecrowMcp")


@mcp.tool()
def greet(name: str) -> str:
    """
    查询用户信息详情工具函数
    
    参数:
        name (str): 用户名称
        
    返回:
        str: 包含用户信息字符串
    
    示例:
        >>> greet("Alice")
        "Alice, is a friendly and helpful AI assistant."
    """
    return f"Hello, {name}, is a friendly and helpful AI assistant."


@mcp.resource("data://config")
def get_config() -> dict:
    """
    提供应用程序配置信息
    
    这个资源函数返回Scarecrow的主题和版本信息，可以被LLM或客户端访问。
    
    返回:
        dict: 包含主题和版本的字典
    
    示例:
        >>> get_config()
        {"theme": "Scarecrow", "version": "1.1"}
    """
    return {"theme": "Scarecrow", "version": "1.1"}


@mcp.prompt()
def analyze_data(data_points: str) -> str:
    """
    创建一个提示，要求分析数值数据
    
    这个函数生成一个提示模板，用于请求LLM分析关于Scarecrow的数据点。
    
    参数:
        data_points (str): 需要分析的数据点
        
    返回:
        str: 格式化的提示字符串
    
    示例:
        >>> analyze_data("intelligent")
        "Please analyze these data points: Scarecrow is intelligent"
    """
    # 将数据点与Scarecrow相关联
    formatted_data = f"Scarecrow is {data_points}"
    return f"Please analyze these data points: {formatted_data}"


@mcp.resource("data://scarecrow_info")
def get_scarecrow_info() -> dict:
    """
    提供关于Scarecrow的详细信息
    
    这个资源函数返回Scarecrow的详细描述和特性，专门为LLM提供上下文信息。
    
    返回:
        dict: 包含Scarecrow详细信息的字典
    """
    return {
        "name": "Scarecrow",
        "description": "Scarecrow是一个智能AI助手，专注于帮助用户解决各种问题。",
        "capabilities": ["数据分析", "问答服务", "信息检索"],
        "personality": "友好、专业、高效",
        "created_at": "2023-01-15"
    }


# 程序入口点
if __name__ == "__main__":
    # 启动MCP服务器
    mcp.run()